diff --git a/bindings/java/src/org/sleuthkit/datamodel/TimelineManager.java b/bindings/java/src/org/sleuthkit/datamodel/TimelineManager.java
index 089a92b3396bfbbcc70e81213f664e3a997ec780..930a12a14978bc663071ed1e674f851a3d55d58a 100644
--- a/bindings/java/src/org/sleuthkit/datamodel/TimelineManager.java
+++ b/bindings/java/src/org/sleuthkit/datamodel/TimelineManager.java
@@ -371,7 +371,7 @@ public List<CombinedEvent> getCombinedEvents(Interval timeRange, RootFilter filt
 			}
 
 		} catch (SQLException sqlEx) {
-			throw new TskCoreException("failed to execute query for combined events", sqlEx); // NON-NLS
+			throw new TskCoreException("Failed to execute query for combined events: \n" + query, sqlEx); // NON-NLS
 		} finally {
 			sleuthkitCase.releaseSingleUserCaseReadLock();
 		}
@@ -784,7 +784,7 @@ public void insertEvent(long time, EventType type, long datasourceID, long objID
 
 		sleuthkitCase.acquireSingleUserCaseWriteLock();
 		try (CaseDbConnection con = sleuthkitCase.getConnection();
-				PreparedStatement insertRowStmt = con.prepareStatement(PREPARED_STATEMENT.INSERT_ROW.getSQL(), 1);) {
+				PreparedStatement insertRowStmt = con.prepareStatement(PREPARED_STATEMENT.INSERT_ROW.getSQL(), PreparedStatement.RETURN_GENERATED_KEYS);) {
 			//"INSERT INTO events (datasource_id,file_id ,artifact_id, time, sub_type, base_type, full_description, med_description, short_description, known_state, hashHit, tagged) " 
 			insertRowStmt.clearParameters();
 			insertRowStmt.setLong(1, datasourceID);
@@ -819,7 +819,8 @@ public void insertEvent(long time, EventType type, long datasourceID, long objID
 					PreparedStatement selectHashSetStmt = con.prepareStatement(PREPARED_STATEMENT.GET_HASH_SET_NAME_BY_ID.getSQL(), 0);) {
 
 				while (generatedKeys.next()) {
-					long eventID = generatedKeys.getLong("last_insert_rowid()"); //NON-NLS
+					//TODO: Why doesn't last_insert_rowid() work?
+					long eventID = generatedKeys.getLong(1);//"last_insert_rowid()"); //NON-NLS
 					for (String name : hashSetNames) {
 
 						// "insert or ignore into hash_sets (hash_set_name)  values (?)"
@@ -850,7 +851,7 @@ public void insertEvent(long time, EventType type, long datasourceID, long objID
 				}
 			}
 		} catch (SQLException ex) {
-			throw new TskCoreException("failed to insert event", ex); // NON-NLS
+			throw new TskCoreException("Failed to insert event.", ex); // NON-NLS
 		} finally {
 			sleuthkitCase.releaseSingleUserCaseWriteLock();
 		}
@@ -1579,10 +1580,24 @@ String getDescriptionColumn(DescriptionLoD lod) {
 	}
 
 	private String getFalseLiteral() {
-		return sleuthkitCase.getDatabaseType() == TskData.DbType.POSTGRESQL ? "FALSE" : "0";
+		switch (sleuthkitCase.getDatabaseType()) {
+			case POSTGRESQL:
+				return "FALSE";
+			case SQLITE:
+				return "0";
+			default:
+				throw new UnsupportedOperationException("Unsupported database type: " + sleuthkitCase.getDatabaseType());
+		}
 	}
 
 	private String getTrueLiteral() {
-		return sleuthkitCase.getDatabaseType() == TskData.DbType.POSTGRESQL ? "TRUE" : "1";
+		switch (sleuthkitCase.getDatabaseType()) {
+			case POSTGRESQL:
+				return "TRUE";
+			case SQLITE:
+				return "1";
+			default:
+				throw new UnsupportedOperationException("Unsupported database type: " + sleuthkitCase.getDatabaseType());
+		}
 	}
 }