Change to CI's db->version() function to allow a list of exceptions for dbs with functions to return version string, vs SQL queries to return version strings. Currently this list only includes Oracle and SQLite.
diff --git a/system/database/DB_driver.php b/system/database/DB_driver.php
index 014dfd4..aee0620 100644
--- a/system/database/DB_driver.php
+++ b/system/database/DB_driver.php
@@ -215,14 +215,20 @@
 			}
 			return FALSE;
 		}
-		
-		if ($this->dbdriver == 'oci8')
+
+		// Some DBs have functions that return the version, and don't run special
+		// SQL queries per se. In these instances, just return the result.
+		$driver_version_exceptions = array('oci8', 'sqlite');
+
+		if (in_array($this->dbdriver, $driver_version_exceptions))
 		{
 			return $sql;
 		}
-	
-		$query = $this->query($sql);
-		return $query->row('ver');
+		else
+		{
+			$query = $this->query($sql);
+			return $query->row('ver');
+		}
 	}
 	
 	// --------------------------------------------------------------------