How to split complex mesh
Assuming your desired end result is a solid cylinder with a textured top surface, perhaps there is another approach. Rather than using a Boolean to create the base, which is likely to generate artifacts, and badly-behaved geometry here, you could start with the whole cylinder.


Take your existing base-cylinder, and subdivide a top surface for it in some way. But whichever way, ensure there are at least some loops running around the circumference:





Assign the top surface to a vertex group.
Aim your Displace modifier at that vertex group. That way, it will displace the top surface of your cylinder, but not the rest.
Even then, there may be some sharp cut-offs of the displacement at the edges, leaving unrealistic thin slivers of displaced top-surface around the cylinder's circumference. So, in Edit Mode, you can edit the weights of the vertices in the group, giving them a falloff towards the outside:




(To edit weights in Edit Mode, select a loop of vertices. In the Item > Vertex Weights panel, adjust the weight of the active vertex, and hit the button to copy the weight to the rest of the loop)

So now you can get control over the depth of your procedural displacement as it approaches the edge of the cylinder:



You can see a couple of slivers sticking up at the back right of this render.. you could adjust the weights in these areas to get rid of them. You can edit the weights in other ways, if you want to achieve a different effect.