Another database to consider is H2. It is an embedded database engine completely written in Java so you have the benefit of full unicode (16 bit) character support that Sqlite does not have. Other embedded databases are HSQLDB and Derby.
sqlite doesnt need any requirement on the server ?
Correct. It does not. Neither does H2.
just install the final application and sqlite works fine in my application ?
Correct. As long as you include Sqlite or H2 in your WAR (or unpack it into your jar), it will work fine.
What is the difference between a Wrapper and a Driver ?
Depends on the usage. I think Sqlite is talking about the fact that when you use the JDBC driver for Sqlite, it is actually a wrapping of the Sqlite C native libraries inside the driver. Typically the JDBC driver talks to a remote database.
H2 also is that way with the "driver" actually doing the database operations just that it was written in Java so you don't need the C wrapper.
Plus I see there exists a "pure java implementation" : SQLJet is it more or less optimized?
This is the first I've heard of Sqljet so I'm not sure. The Xerial Sqlite driver is what I've used and it's performance seems to be good.
Finally what would you use in my situation?
I'd use H2 myself for the native Java features.