     /// - parameter columnName: A column name.
     /// - returns: An optional *Value*.
     public func value<Value: protocol<DatabaseValueConvertible, SQLiteStatementConvertible>>(named columnName: String) -> Value {
-        if let index = impl.indexForColumn(named: columnName) {
-            return value(atIndex: index)
-        } else {
+        guard let index = impl.indexForColumn(named: columnName) else {
             fatalError("No such column: \(String(reflecting: columnName))")
         }
+        return value(atIndex: index)
     }
     
     /// Returns the optional `NSData` at given index.

    /// - parameter columnName: A column name.
    /// - returns: An optional NSData.
    public func dataNoCopy(named columnName: String) -> NSData? {
        if let index = impl.indexForColumn(named: columnName) {
            return dataNoCopy(atIndex: index)
        } else {
            fatalError("No such column: \(String(reflecting: columnName))")
        }
    }
    
    

    /// - parameter columnName: A column name.
    /// - returns: An optional *Value*.
    public func value<Value: DatabaseValueConvertible>(named columnName: String) -> Value {
        guard let index = impl.indexForColumn(named: columnName) else {
            fatalError("No such column: \(String(reflecting: columnName))")
        }
        return value(atIndex: index)
    }
    
    /// Returns the value of type `Value` at given column.
