diff --git a/lib/dialects/sqlite3/runner.js b/lib/dialects/sqlite3/runner.js
index <HASH>..<HASH> 100644
--- a/lib/dialects/sqlite3/runner.js
+++ b/lib/dialects/sqlite3/runner.js
@@ -40,17 +40,17 @@ Runner_SQLite3.prototype._query = Promise.method(function(obj) {
   });
 });
 
-// Grab a connection, run the query via the MySQL streaming interface,
-// and pass that through to the stream we've sent back to the client.
+// Sounds like .each doesn't work great for
 Runner_SQLite3.prototype._stream = Promise.method(function(sql, stream, options) {
   var runner = this;
   return new Promise(function(resolver, rejecter) {
     stream.on('error', rejecter);
     stream.on('end', resolver);
-    runner.connection.each(sql.sql, sql.bindings, function(err, row) {
-      if (err) return rejecter(err);
+    return runner.query().map(function(row) {
       stream.write(row);
-    }, function() {
+    }).catch(function() {
+      stream.emit('error');
+    }).then(function() {
       stream.end();
     });
   });
different stream implementation for the sqlite3 runner