How to make water not pass through bottom of floating object?
You can create an object of a shape similar to your floating object (bowl, boat, whatever) but lower-poly. Then select your ocean object and add a Boolean Modifier. The Operation mode should be set to Difference, and the Object slot should of course be set to your low-poly boolean object. Normals must be facing the correct directions or you'll get unexpected results.

Here is a screen shot of my test doing this with a simple cylinder:



Now there are just a few more things to do.


Prevent this boolean object from being rendered.


You can do this by finding the object in the Outliner and turning off visibility for the render, and for the viewport if you like (although this makes it no longer selectable). 

In my screen shot I have set the Maximum Draw Type to Wire, and that's why I can still see and select my boolean object. However this leaves it visible during viewport rendering, so to fix that I simply gave it a material with a Transparent shader (with the color set to white for full transparency).


Parent it to your original floating object, so it moves with it.


Pretty straightforward. Select your boolean object, then select your floating object and press [Ctrl P]. Set Parent to Object.


Fix possible issues with ugly shading on the geometry of your ocean where it touches the boolean object.


With your ocean object selected, navigate to the Mesh Tab. Check the box for "Auto Smooth". Also, in the Tools panel set the object's Shading to Smooth.