RAMWaterDataProvider supports water heights, normals and flow and it inherits from RaycastWaterDataProvider.
Setup
Add DWP_RAM to Project Settings > Player > Scripting Define Symbols.
Set up the scene as if using flat water, minus FlatWaterDataProvider.
Add RAMWaterDataProvider to the scene. It does not have to be attached to any specific object.
Make sure that the RAM object has a MeshCollider attached. This is required for Raycasts to work.
Assign Water Layer to the River Auto Material water. Assign Object Layer to all the WaterObjects in the scene. This is an important step as the script will disable physical collisions between the two layers to prevent the WaterObjects from sitting on top of the mesh collider that R.A.M. uses instead of interacting with water.