Is there a way to subdivide a cube while a shape of a sphere is maintained?
You can do this non destructively by adding a subdivision surface modifier set to simple, and a cast modifier with the Cast type set the sphere and the factor set to 1.

Another method is W>Subdivide smooth will come close to achieving the effect you want, as far as I know, it doesn't divide correctly, and will create a mesh that isn't quite spherical. 

Screen shot of modifier settings: