I don't understand your question very well , but there is TextureButton node in Godot and it has " hover " property and you can assign different image to it .... and as far as I know and I tested , it will change the image completely
( I add a big image , Normal property of TextureButton , then I added small image to Hover property , and when I run the game , it change the image completely
just use TextureButton node instead of Button node