diff --git a/internal/sqladapter/database.go b/internal/sqladapter/database.go
index 27cf5b3f7d190da140091e817ca72416e7bf4ef4..ed26ce189e2365b485b87659a385c7591d041383 100644
--- a/internal/sqladapter/database.go
+++ b/internal/sqladapter/database.go
@@ -187,14 +187,11 @@ func (d *database) Close() error {
 		d.cachedStatements.Clear() // Closes prepared statements as well.
 
 		tx := d.Transaction()
-		if tx == nil {
-			// Not within a transaction.
-			return d.sess.Close()
-		}
-
-		if !tx.Committed() {
+		if tx != nil && !tx.Committed() {
 			tx.Rollback()
 		}
+
+		return d.sess.Close()
 	}
 	return nil
 }