I accidentally found a glitch where if you put a boat underwater and right-click it while it is underwater, not on the surface of the water you can walk in the water and have infinite water breathing. You cannot take damage but you can't break anything. You can place blocks though. Swimming however makes you vulnerable to drowning so you can swim and then walk in the water to recharge your air bubbles. Btw I'm in bedrock.