func GetDatabaseForFile(database string) *sql.DB {
	DBMutex.Lock()
	defer DBMutex.Unlock()
	if db, ok := Databases[database]; ok {
		return db
	}
	db, err := sql.Open(DriverString, database)
	if err != nil {
		panic(err)
	}
	Databases[database] = db
	return db
}
GetDatabaseForFile does what you think it does
package database
import (
	"database/sql"
	"sync"
)
var (
	DBMutex      sync.Mutex
	Databases    map[string]*sql.DB
	DriverString string
	IsCSV        bool
)
func init() {
	DBMutex = sync.Mutex{}
	Databases = make(map[string]*sql.DB)
}
type Query interface {
	GetValues() map[string]interface{}
	SetValues(map[string]interface{})
}
type Database interface {
	Update(q *Update)
	GenerateQuery(u *Update) (string, []string)
	GetPlaceholderForDatabaseType() string
	GetFileName() string
	GetTableNamesQuery() string
	GetDatabaseReference() *sql.DB
	CloseDatabaseReference()
	SetDatabaseReference(dbPath string)
}
type Update struct {
	v    map[string]interface{}  
	Column    string                  
	Update    interface{}             
	TableName string
}
func (u *Update) GetValues() map[string]interface{} {
	return u.v
}
func (u *Update) SetValues(v map[string]interface{}) {
	u.v = v
}