As much as I love SQL I would have thought this would have abstracted away the SQL bit of the queue and just given me high level queue methods to do stuff with. I don’t like this much for that reason.
I don't understand your comment. Abstracting away the SQL is exactly what this library does (and pretty much the only thing): Send, Receive, Delete methods.
Could you clarify?
From the example, it appears you still need to setup schema yourself using SQL. This makes the library a leaky abstraction because it only partially hides the SQL.
Well your example on the website contains a Database schema and manually opens a DB connection. Why do I as a library user need to care about that? Just do that internally when creating the queue instance