Try this one (doing it off the top of my head because I'm rendering, but I've played with it enough):
Add a distribution shader. limit the maximum altitude to just above your water. Make the fuzzy zone fairly small since want a fairly steep cut. Then add a powerfractal to the child layer node. Then use the displacement offset to move the walls. You'll need to use a negative offset to move them below your canyon walls.