[LWJGL] Voxels - Display lists vs. Instanced Arrays

I am working on a voxel engine. When I saw all the other voxel engines here I saw that most of the projects were rendered using Display Lists (Minecraft too) . Is there a reason for this? According to AlwaysGeeky https://sites.google.com/site/letsmakeavoxelengine/home/display-lists-or-vertex-buffers :-

[quote]-Vertex buffers allow us to group up our data into a big array and then send it all to the graphics card together (each frame).
-Display lists are special lists of render calls that are stored on the GPU itself and rendered each frame when the list is rendered, but we dont have to send this data to the GPU every frame.
[/quote]
So which one is the best for my requirements (details are given below)

My voxel engine would have :-

Small voxels (I might have to use tessellation)

Realistic physics and lighting (Shaders are a must)

Target - PC, Consoles (hopefully)

Also if Display lists are better can you link a tutorial for that as I am used to OpenGL 3.0 above pipeline ?