     {:prepare, state} |
     {:error, ArgumentError.t, state} |
     {:error | :disconnect, Sqlite.DbConnection.Error.t, state}
-  def handle_execute_close(%Query{name: @reserved_prefix <> _} = query, _, _, s) do
-    reserved_error(query, s)
-  end
+  # def handle_execute_close(%Query{name: @reserved_prefix <> _} = query, _, _, s) do
+  #   reserved_error(query, s)
+  # end
   def handle_execute_close(query, params, opts, s) do
     handle_execute(query, params, :sync_close, opts, s)
   end


  @spec checkout(state) ::
    {:ok, state} | {:disconnect, Sqlite.DbConnection.Error.t, state}
  def checkout(%{checked_out?: true} = s), do:
    {:disconnect, :already_checked_out, s}  # FIXME: Proper error here
  def checkout(%{checked_out?: false} = s), do:
    {:ok, %{s | checked_out?: true}}

  @spec checkin(state) ::
    {:ok, state} | {:disconnect, Sqlite.DbConnection.Error.t, state}
  def checkin(%{checked_out?: false} = s), do:
    {:disconnect, :not_checked_out, s}  # FIXME: Proper error here
  def checkin(%{checked_out?: true} = s), do:
    {:ok, %{s | checked_out?: false}}


    {:ok, Sqlite.DbConnection.Query.t, state} |
    {:error, ArgumentError.t, state} |
    {:error | :disconnect, Sqlite.DbConnection.Error.t, state}
  # def handle_prepare(%Query{name: @reserved_prefix <> _} = query, _, s) do
  #   reserved_error(query, s)
  # end
  def handle_prepare(query, opts, s) do
    handle_prepare(query, :parse_describe, opts, s)
  end

  @spec handle_execute(Sqlite.DbConnection.Query.t, list, Keyword.t, state) ::
