Hi,
Not only can you offload a lot of graphics load to the video card using OpenGL, in theory you can offload other work (unrelated to graphics) to the GPU using OpenCL. For both cases, the work is not done by Java - it\'s done by native code (e.g. 80x86 code running as a Windows library) that feeds \"GPU code and data\" to the video card to process.
For Starmade\'s code, you can classify operations that involve objects (ships, planets, asteroids, stations) into 2 categories: things that manipulate the underlying blocks of an object (applying damage, adding/removing blocks, etc), and things that treat the object as a whole (collision detection, rendering).
For the first category, octrees are only \"good\". It\'s likely that some other data structure would be better - e.g. objects could be a \"2D array of run length encoded vertical columns\" and use a lot less memory and cause a lot less cache misses (less \"pointer chasing\").
For the second category, octrees are just plain bad. Instead you want optimised mesh/es that describe exterior and interior surfaces.
Also; I strongly suspect that using SQL/database for storage (instead of purpose designed data structures in Java) is a serious performance problem on its own.