diff --git a/lib/database_cleaner/data_mapper/truncation.rb b/lib/database_cleaner/data_mapper/truncation.rb
index <HASH>..<HASH> 100644
--- a/lib/database_cleaner/data_mapper/truncation.rb
+++ b/lib/database_cleaner/data_mapper/truncation.rb
@@ -53,7 +53,7 @@ module DataMapper
 
       def truncate_table(table_name)
         execute("DELETE FROM #{quote_name(table_name)};")
-        if uses_sequence
+        if uses_sequence?
           execute("DELETE FROM sqlite_sequence where name = '#{table_name}';")
         end
       end
@@ -65,6 +65,16 @@ module DataMapper
         yield
       end
 
+      private
+
+      def uses_sequence?
+        sql = <<-SQL
+          SELECT name FROM sqlite_master
+          WHERE type='table' AND name='sqlite_sequence'
+        SQL
+        select(sql).first
+      end
+
     end
 
     class SqliteAdapter < DataObjectsAdapter
@@ -82,7 +92,7 @@ module DataMapper
 
       def truncate_table(table_name)
         execute("DELETE FROM #{quote_name(table_name)};")
-        if uses_sequence
+        if uses_sequence?
           execute("DELETE FROM sqlite_sequence where name = '#{table_name}';")
         end
       end
@@ -94,6 +104,16 @@ module DataMapper
         yield
       end
 
+      private
+
+      def uses_sequence?
+        sql = <<-SQL
+          SELECT name FROM sqlite_master
+          WHERE type='table' AND name='sqlite_sequence'
+        SQL
+        select(sql).first
+      end
+
     end
 
     # FIXME
Fixes missing #uses_sequence invokation in adapter classes for sqlite and sqlite3