decouple Query and QueryStatement from SQLAdapter.execute