class SqlDatabaseSupplier extends SQLiteOpenHelper implements Supplier<Result<SQLiteDatabase>> {

  @NonNull
  @Override
  public final synchronized Result<SQLiteDatabase> get() {
    try {
      return absentIfNull(getWritableDatabase());
    } catch (final SQLException e) {
      return failure(e);
    }
  }

  public  SqlDatabaseSupplier(@NonNull final Context context, @NonNull final String path,
      @Nullable final CursorFactory factory, final int version);

}