You can use MeshDataTool to modify vertices loaded in from a model.
https://docs.godotengine.org/en/3.2/tutorials/content/procedural_geometry/meshdatatool.html
So import a high poly sphere and use MeshDataTool to iterate through the vertices and adjust them based on the height map. I don't think a shader will work because you need to generate a collision shape as well (assuming the world will have collision).
In Blender (or your DCC tool) make the sphere center zero and make sure to apply all transforms. This way, each vertex is a vector coming off the origin. So to scale the vector by a scalar value you will essentially be moving it forward and away from the center. For example, multiplying the vertex by 0.5 will make it half the size aka halfway in-between it's original position and the center. 2.0 would make it twice as high.
You can use ConcavePolygonShape to create the collision mesh used with a StaticBody.
https://docs.godotengine.org/en/3.2/classes/class_concavepolygonshape.html
You can use vertex colors to set the transition to different textures. MeshDataTool can set vertex colors. I think you want to use one Material, though, and blend the textures in a shader.
Never tried this in Godot, but I believe that would work (or set you in the right direction at least).