     ///
     /// - parameter sql: An SQL snippet.
     /// - returns: Self so that you can further refine the column definition.
-    public func check(sql sql: String) -> SQLColumnBuilder {
+    public func check(sql sql: String) -> ColumnDefinition {
         checkExpression = _SQLExpression.Literal(sql, nil)
         return self
     }

    /// - parameter conflitResolution: An optional conflict resolution
    ///   (see https://www.sqlite.org/lang_conflict.html).
    /// - returns: Self so that you can further refine the column definition.
    public func notNull(onConflict conflictResolution: SQLConflictResolution? = nil) -> SQLColumnBuilder {
        notNullConflictResolution = conflictResolution ?? .Abort
        return self
    }

    ///     - ifNotExists: If false, no error is thrown if table already exists.
    ///     - body: A closure that defines table columns and constraints.
    /// - throws: A DatabaseError whenever an SQLite error occurs.
    public func create(table name: String, temporary: Bool = false, ifNotExists: Bool = false, body: (TableDefinition) -> Void) throws {
        let definition = TableDefinition(name: name, temporary: temporary, ifNotExists: ifNotExists, withoutRowID: false)
        body(definition)
        let sql = try definition.sql(self)
        try execute(sql)
    }
    
