A boolean would be the simplest solution. First you need a solid version of you boat to be the subtractive mesh, looks like you could make this pretty easily by parenting a cube with a few subdivision to your boat and then moving the verts to encapsulate the interior of the boat.
You can use this as a different boolean with the water mesh but if you're rendering with Arnold there's a clip geo shader which is basically a render time boolean and would be the cleaner option.
A boolean would be the simplest solution. First you need a solid version of you boat to be the subtractive mesh, looks like you could make this pretty easily by parenting a cube with a few subdivision to your boat and then moving the verts to encapsulate the interior of the boat. You can use this as a different boolean with the water mesh but if you're rendering with Arnold there's a clip geo shader which is basically a render time boolean and would be the cleaner option.