Database schema:

CREATE TABLE "ethnicGroup" (
	"Country" TEXT DEFAULT '' NOT NULL -- example: ['EAU', 'GE'],
	"Name" TEXT DEFAULT '' NOT NULL -- example: ['Acholi', 'Abkhaz'],
	"Percentage" REAL -- example: ['1.8', '4.0'],
	PRIMARY KEY ("Name", "Country"), 
	CONSTRAINT fk_ethnicgroup_country FOREIGN KEY("Country") REFERENCES country ("Code")
)


CREATE TABLE "isMember" (
	"Country" TEXT DEFAULT '' NOT NULL -- example: ['A', 'AFG'],
	"Organization" TEXT DEFAULT '' NOT NULL -- example: ['ANC', 'AG'],
	"Type" TEXT DEFAULT 'member' -- example: ['nonregional member', 'Type'],
	PRIMARY KEY ("Country", "Organization"), 
	CONSTRAINT fk_ismember_organization FOREIGN KEY("Organization") REFERENCES organization ("Abbreviation"),
	CONSTRAINT fk_ismember_country FOREIGN KEY("Country") REFERENCES country ("Code")
)


CREATE TABLE "islandIn" (
	"Island" TEXT -- example: ['Svalbard', 'Island'],
	"Sea" TEXT -- example: ['Norwegian Sea', 'Sea'],
	"Lake" TEXT -- example: ['Ozero Baikal', 'Lake'],
	"River" TEXT -- example: ['River'],
	CONSTRAINT fk_islandin_river FOREIGN KEY("River") REFERENCES river ("Name"),
	CONSTRAINT fk_islandin_lake FOREIGN KEY("Lake") REFERENCES lake ("Name"),
	CONSTRAINT fk_islandin_sea FOREIGN KEY("Sea") REFERENCES sea ("Name"),
	CONSTRAINT fk_islandin_island FOREIGN KEY("Island") REFERENCES island ("Name")
)


CREATE TABLE "locatedOn" (
	"City" TEXT DEFAULT '' NOT NULL -- example: ['Aberystwyth', 'Aberdeen'],
	"Province" TEXT DEFAULT '' NOT NULL -- example: ['Province', 'Grampian'],
	"Country" TEXT DEFAULT '' NOT NULL -- example: ['Coun', 'GB'],
	"Island" TEXT DEFAULT '' NOT NULL -- example: ['Great Britain', 'Island'],
	PRIMARY KEY ("City", "Province", "Country", "Island"), 
	CONSTRAINT fk_locatedon_province FOREIGN KEY("Province", "Country") REFERENCES province ("Name", "Country"),
	CONSTRAINT fk_locatedon_city FOREIGN KEY("City", "Province") REFERENCES city ("Name", "Province"),
	CONSTRAINT fk_locatedon_island FOREIGN KEY("Island") REFERENCES island ("Name"),
	CONSTRAINT fk_locatedon_country FOREIGN KEY("Country") REFERENCES country ("Code")
)


CREATE TABLE "mergesWith" (
	"Sea1" TEXT DEFAULT '' NOT NULL -- example: ['Arabian Sea', 'Andaman Sea'],
	"Sea2" TEXT DEFAULT '' NOT NULL -- example: ['Gulf of Bengal', 'Sea2'],
	PRIMARY KEY ("Sea1", "Sea2"), 
	CONSTRAINT fk_mergeswith_sea FOREIGN KEY("Sea2") REFERENCES sea ("Name"),
	CONSTRAINT fk_mergeswith_sea FOREIGN KEY("Sea1") REFERENCES sea ("Name")
)


CREATE TABLE "mountainOnIsland" (
	"Mountain" TEXT DEFAULT '' NOT NULL -- example: ['Andringitra', 'Asahi-Dake'],
	"Island" TEXT DEFAULT '' NOT NULL -- example: ['Madagaskar', 'Island'],
	PRIMARY KEY ("Mountain", "Island"), 
	CONSTRAINT fk_mountainonisland_island FOREIGN KEY("Island") REFERENCES island ("Name"),
	CONSTRAINT fk_mountainonisland_mountain FOREIGN KEY("Mountain") REFERENCES mountain ("Name")
)


CREATE TABLE borders (
	"Country1" TEXT DEFAULT '' NOT NULL -- example: ['A', 'AFG'],
	"Country2" TEXT DEFAULT '' NOT NULL -- example: ['CH', 'CZ'],
	"Length" REAL -- example: ['164.0', '362.0'],
	PRIMARY KEY ("Country1", "Country2"), 
	CONSTRAINT fk_borders_country FOREIGN KEY("Country2") REFERENCES country ("Code"),
	CONSTRAINT fk_borders_country FOREIGN KEY("Country1") REFERENCES country ("Code")
)


CREATE TABLE city (
	"Name" TEXT DEFAULT '' NOT NULL -- example: ['Aachen', 'Aalborg'],
	"Country" TEXT DEFAULT '' NOT NULL -- example: ['D', 'DK'],
	"Province" TEXT DEFAULT '' NOT NULL -- example: ['Nordrhein Westfalen', 'Denmark'],
	"Population" INTEGER -- example: ['247113', '113865'],
	"Longitude" REAL -- example: ['10.1', '10.0'],
	"Latitude" REAL -- example: ['57.0', '56.1'],
	PRIMARY KEY ("Name", "Province"), 
	CONSTRAINT fk_city_province FOREIGN KEY("Province", "Country") REFERENCES province ("Name", "Country"),
	CONSTRAINT fk_city_country FOREIGN KEY("Country") REFERENCES country ("Code")
)


CREATE TABLE continent (
	"Name" TEXT DEFAULT '' NOT NULL -- example: ['Africa', 'America'],
	"Area" REAL -- example: ['30254700.0', '39872000.0'],
	PRIMARY KEY ("Name")
)


CREATE TABLE country (
	"Name" TEXT NOT NULL -- example: ['Albania', 'Afghanistan'],
	"Code" TEXT DEFAULT '' NOT NULL -- example: ['A', 'AFG'],
	"Capital" TEXT -- example: ['Vienna', 'Kabul'],
	"Province" TEXT -- example: ['Vienna', 'Afghanistan'],
	"Area" REAL -- example: ['83850.0', '647500.0'],
	"Population" INTEGER -- example: ['8023244', '22664136'],
	PRIMARY KEY ("Code")
)


CREATE TABLE desert (
	"Name" TEXT DEFAULT '' NOT NULL -- example: ['Arabian Desert', 'Atacama'],
	"Area" REAL -- example: ['50000.0', '181300.0'],
	"Longitude" REAL -- example: ['26.0', '-69.25'],
	"Latitude" REAL -- example: ['33.0', '-24.5'],
	PRIMARY KEY ("Name")
)


CREATE TABLE economy (
	"Country" TEXT DEFAULT '' NOT NULL -- example: ['A', 'AFG'],
	"GDP" REAL -- example: ['12800.0', '152000.0'],
	"Agriculture" REAL -- example: ['2.0', '65.0'],
	"Service" REAL -- example: ['15.0', '34.0'],
	"Industry" REAL -- example: ['64.0', '20.0'],
	"Inflation" REAL -- example: ['2.3', '3.5'],
	PRIMARY KEY ("Country"), 
	CONSTRAINT fk_economy_country FOREIGN KEY("Country") REFERENCES country ("Code")
)


CREATE TABLE encompasses (
	"Country" TEXT NOT NULL -- example: ['A', 'AFG'],
	"Continent" TEXT NOT NULL -- example: ['Europe', 'Asia'],
	"Percentage" REAL -- example: ['100.0', '90.0'],
	PRIMARY KEY ("Country", "Continent"), 
	CONSTRAINT fk_encompasses_continent FOREIGN KEY("Continent") REFERENCES continent ("Name"),
	CONSTRAINT fk_encompasses_country FOREIGN KEY("Country") REFERENCES country ("Code")
)


CREATE TABLE geo_desert (
	"Desert" TEXT DEFAULT '' NOT NULL -- example: ['Desert', 'Rub Al Chali'],
	"Country" TEXT DEFAULT '' NOT NULL -- example: ['UAE', 'Coun'],
	"Province" TEXT DEFAULT '' NOT NULL -- example: ['Abu Dhabi', 'Afghanistan'],
	PRIMARY KEY ("Province", "Country", "Desert"), 
	CONSTRAINT fk_geo_desert_province FOREIGN KEY("Province", "Country") REFERENCES province ("Name", "Country"),
	CONSTRAINT fk_geo_desert_country FOREIGN KEY("Country") REFERENCES country ("Code"),
	CONSTRAINT fk_geo_desert_desert FOREIGN KEY("Desert") REFERENCES desert ("Name")
)


CREATE TABLE geo_estuary (
	"River" TEXT DEFAULT '' NOT NULL -- example: ['Bahr el-Djebel/Albert-Nil', 'River'],
	"Country" TEXT DEFAULT '' NOT NULL -- example: ['SUD', 'Coun'],
	"Province" TEXT DEFAULT '' NOT NULL -- example: ['Aali an Nil', 'AG'],
	PRIMARY KEY ("Province", "Country", "River"), 
	CONSTRAINT fk_geo_estuary_province FOREIGN KEY("Province", "Country") REFERENCES province ("Name", "Country"),
	CONSTRAINT fk_geo_estuary_country FOREIGN KEY("Country") REFERENCES country ("Code"),
	CONSTRAINT fk_geo_estuary_river FOREIGN KEY("River") REFERENCES river ("Name")
)


CREATE TABLE geo_island (
	"Island" TEXT DEFAULT '' NOT NULL -- example: ['Alicudi', 'Aland'],
	"Country" TEXT DEFAULT '' NOT NULL -- example: ['Lipa', 'Alan'],
	"Province" TEXT DEFAULT '' NOT NULL -- example: ['102', '101'],
	PRIMARY KEY ("Province", "Country", "Island"), 
	CONSTRAINT fk_geo_island_province FOREIGN KEY("Province", "Country") REFERENCES province ("Name", "Country"),
	CONSTRAINT fk_geo_island_country FOREIGN KEY("Country") REFERENCES country ("Code"),
	CONSTRAINT fk_geo_island_island FOREIGN KEY("Island") REFERENCES island ("Name")
)


CREATE TABLE geo_lake (
	"Lake" TEXT DEFAULT '' NOT NULL -- example: ['Barrage de Mbakaou', 'Lake'],
	"Country" TEXT DEFAULT '' NOT NULL -- example: ['Coun', 'CAM'],
	"Province" TEXT DEFAULT '' NOT NULL -- example: ['Adamaoua', 'Alajuela'],
	PRIMARY KEY ("Province", "Country", "Lake"), 
	CONSTRAINT fk_geo_lake_province FOREIGN KEY("Province", "Country") REFERENCES province ("Name", "Country"),
	CONSTRAINT fk_geo_lake_country FOREIGN KEY("Country") REFERENCES country ("Code"),
	CONSTRAINT fk_geo_lake_lake FOREIGN KEY("Lake") REFERENCES lake ("Name")
)


CREATE TABLE geo_mountain (
	"Mountain" TEXT DEFAULT '' NOT NULL -- example: ['Mountain', 'Gran Sasso'],
	"Country" TEXT DEFAULT '' NOT NULL -- example: ['Coun', 'I'],
	"Province" TEXT DEFAULT '' NOT NULL -- example: ['Abruzzo', 'Afghanistan'],
	PRIMARY KEY ("Province", "Country", "Mountain"), 
	CONSTRAINT fk_geo_mountain_province FOREIGN KEY("Province", "Country") REFERENCES province ("Name", "Country"),
	CONSTRAINT fk_geo_mountain_country FOREIGN KEY("Country") REFERENCES country ("Code"),
	CONSTRAINT fk_geo_mountain_mountain FOREIGN KEY("Mountain") REFERENCES mountain ("Name")
)


CREATE TABLE geo_river (
	"River" TEXT DEFAULT '' NOT NULL -- example: ['Bahr el-Djebel/Albert-Nil', 'River'],
	"Country" TEXT DEFAULT '' NOT NULL -- example: ['SUD', 'Coun'],
	"Province" TEXT DEFAULT '' NOT NULL -- example: ['Aali an Nil', 'AG'],
	PRIMARY KEY ("Province", "Country", "River"), 
	CONSTRAINT fk_geo_river_province FOREIGN KEY("Province", "Country") REFERENCES province ("Name", "Country"),
	CONSTRAINT fk_geo_river_country FOREIGN KEY("Country") REFERENCES country ("Code"),
	CONSTRAINT fk_geo_river_river FOREIGN KEY("River") REFERENCES river ("Name")
)


CREATE TABLE geo_sea (
	"Sea" TEXT DEFAULT '' NOT NULL -- example: ['Mediterranean Sea', 'Sea'],
	"Country" TEXT DEFAULT '' NOT NULL -- example: ['Coun', 'I'],
	"Province" TEXT DEFAULT '' NOT NULL -- example: ['Abruzzo', 'Abu Dhabi'],
	PRIMARY KEY ("Province", "Country", "Sea"), 
	CONSTRAINT fk_geo_sea_province FOREIGN KEY("Province", "Country") REFERENCES province ("Name", "Country"),
	CONSTRAINT fk_geo_sea_country FOREIGN KEY("Country") REFERENCES country ("Code"),
	CONSTRAINT fk_geo_sea_sea FOREIGN KEY("Sea") REFERENCES sea ("Name")
)


CREATE TABLE geo_source (
	"River" TEXT DEFAULT '' NOT NULL -- example: ['White Nile', 'River'],
	"Country" TEXT DEFAULT '' NOT NULL -- example: ['SUD', 'Coun'],
	"Province" TEXT DEFAULT '' NOT NULL -- example: ['Aali an Nil', 'Afghanistan'],
	PRIMARY KEY ("Province", "Country", "River"), 
	CONSTRAINT fk_geo_source_province FOREIGN KEY("Province", "Country") REFERENCES province ("Name", "Country"),
	CONSTRAINT fk_geo_source_country FOREIGN KEY("Country") REFERENCES country ("Code"),
	CONSTRAINT fk_geo_source_river FOREIGN KEY("River") REFERENCES river ("Name")
)


CREATE TABLE island (
	"Name" TEXT DEFAULT '' NOT NULL -- example: ['Alicudi', 'Aland'],
	"Islands" TEXT -- example: ['Lipari Islands', 'Aland Islands'],
	"Area" REAL -- example: ['650.0', '5.2'],
	"Height" REAL -- example: ['1225.0', '675.0'],
	"Type" TEXT -- example: ['volcanic', 'lime'],
	"Longitude" REAL -- example: ['14.4', '20.0'],
	"Latitude" REAL -- example: ['60.1', '38.6'],
	PRIMARY KEY ("Name")
)


CREATE TABLE lake (
	"Name" TEXT DEFAULT '' NOT NULL -- example: ['Ammersee', 'Arresoe'],
	"Area" REAL -- example: ['46.6', '40.2'],
	"Depth" REAL -- example: ['5.6', '81.1'],
	"Altitude" REAL -- example: ['533.0', '668.0'],
	"Type" TEXT -- example: ['artificial', 'salt'],
	"River" TEXT -- example: ['Ammer', 'Yukon River'],
	"Longitude" REAL -- example: ['12.1', '11.6'],
	"Latitude" REAL -- example: ['48.0', '56.0'],
	PRIMARY KEY ("Name")
)


CREATE TABLE language (
	"Country" TEXT DEFAULT '' NOT NULL -- example: ['AFG', 'NAM'],
	"Name" TEXT DEFAULT '' NOT NULL -- example: ['Afrikaans', 'Afghan Persian'],
	"Percentage" REAL -- example: ['60.0', '50.0'],
	PRIMARY KEY ("Name", "Country"), 
	CONSTRAINT fk_language_country FOREIGN KEY("Country") REFERENCES country ("Code")
)


CREATE TABLE located (
	"City" TEXT -- example: ['City', 'Shkoder'],
	"Province" TEXT -- example: ['Province', 'Albania'],
	"Country" TEXT -- example: ['AL', 'Coun'],
	"River" TEXT -- example: ['River', 'Donau'],
	"Lake" TEXT -- example: ['Lake', 'Lake Skutari'],
	"Sea" TEXT -- example: ['Mediterranean Sea', 'Sea'],
	CONSTRAINT fk_located_province FOREIGN KEY("Province", "Country") REFERENCES province ("Name", "Country"),
	CONSTRAINT fk_located_city FOREIGN KEY("City", "Province") REFERENCES city ("Name", "Province"),
	CONSTRAINT fk_located_sea FOREIGN KEY("Sea") REFERENCES sea ("Name"),
	CONSTRAINT fk_located_lake FOREIGN KEY("Lake") REFERENCES lake ("Name"),
	CONSTRAINT fk_located_river FOREIGN KEY("River") REFERENCES river ("Name"),
	CONSTRAINT fk_located_country FOREIGN KEY("Country") REFERENCES country ("Code")
)


CREATE TABLE mountain (
	"Name" TEXT DEFAULT '' NOT NULL, 
	"Mountains" TEXT, 
	"Height" REAL, 
	"Type" TEXT, 
	"Longitude" REAL, 
	"Latitude" REAL, 
	PRIMARY KEY ("Name")
)


CREATE TABLE organization (
	"Abbreviation" TEXT NOT NULL, 
	"Name" TEXT NOT NULL, 
	"City" TEXT, 
	"Country" TEXT, 
	"Province" TEXT, 
	"Established" DATE, 
	PRIMARY KEY ("Abbreviation"), 
	CONSTRAINT fk_organization_province FOREIGN KEY("Province", "Country") REFERENCES province ("Name", "Country"),
	CONSTRAINT fk_organization_city FOREIGN KEY("City", "Province") REFERENCES city ("Name", "Province"),
	CONSTRAINT fk_organization_country FOREIGN KEY("Country") REFERENCES country ("Code")
)


CREATE TABLE politics (
	"Country" TEXT DEFAULT '' NOT NULL, 
	"Independence" DATE, 
	"Dependent" TEXT, 
	"Government" TEXT, 
	PRIMARY KEY ("Country"), 
	CONSTRAINT fk_politics_country FOREIGN KEY("Dependent") REFERENCES country ("Code"),
	CONSTRAINT fk_politics_country FOREIGN KEY("Country") REFERENCES country ("Code")
)


CREATE TABLE population (
	"Country" TEXT DEFAULT '' NOT NULL -- example: ['A', 'AFG'],
	"Population_Growth" REAL -- example: ['0.41', '4.78'],
	"Infant_Mortality" REAL -- example: ['6.2', '149.7'],
	PRIMARY KEY ("Country"), 
	CONSTRAINT fk_population_country FOREIGN KEY("Country") REFERENCES country ("Code")
)


CREATE TABLE province (
	"Name" TEXT NOT NULL -- example: ['AI', 'AG'],
	"Country" TEXT NOT NULL -- example: ['CH', 'SUD'],
	"Population" INTEGER -- example: ['1599605', '110700'],
	"Area" REAL -- example: ['1130.0', '238792.0'],
	"Capital" TEXT -- example: ['Colwyn Bay', 'Malakal'],
	"CapProv" TEXT -- example: ['Aali an Nil', 'Aberconwy and Colwyn'],
	PRIMARY KEY ("Name", "Country"), 
	CONSTRAINT fk_province_country FOREIGN KEY("Country") REFERENCES country ("Code")
)


CREATE TABLE religion (
	"Country" TEXT DEFAULT '' NOT NULL -- example: ['BERM', 'AUS'],
	"Name" TEXT DEFAULT '' NOT NULL -- example: ['African Methodist Episcopal', 'Anglican'],
	"Percentage" REAL -- example: ['26.1', '11.0'],
	PRIMARY KEY ("Name", "Country"), 
	CONSTRAINT fk_religion_country FOREIGN KEY("Country") REFERENCES country ("Code")
)


CREATE TABLE river (
	"Name" TEXT DEFAULT '' NOT NULL -- example: ['Aare', 'Adda'],
	"River" TEXT -- example: ['Rhein', 'Po'],
	"Lake" TEXT -- example: ['Brienzersee', 'Lago di Como'],
	"Sea" TEXT -- example: ['Atlantic Ocean', 'Sea of Okhotsk'],
	"Length" REAL -- example: ['288.0', '313.0'],
	"SourceLongitude" REAL -- example: ['8.2', '10.3'],
	"SourceLatitude" REAL -- example: ['-2.5', '46.55'],
	"Mountains" TEXT -- example: ['Alps', 'East African Rift'],
	"SourceAltitude" REAL -- example: ['2310.0', '2235.0'],
	"EstuaryLongitude" REAL -- example: ['9.88', '8.22'],
	"EstuaryLatitude" REAL -- example: ['45.13', '47.61'],
	PRIMARY KEY ("Name"), 
	CONSTRAINT fk_river_lake FOREIGN KEY("Lake") REFERENCES lake ("Name")
)


CREATE TABLE sea (
	"Name" TEXT DEFAULT '' NOT NULL -- example: ['Arabian Sea', 'Andaman Sea'],
	"Depth" REAL -- example: ['5203.0', '3113.0'],
	PRIMARY KEY ("Name")
)


CREATE TABLE target (
	"Country" TEXT NOT NULL -- example: ['A', 'AFG'],
	"Target" TEXT -- example: ['Target', 'Christian'],
	PRIMARY KEY ("Country"), 
	CONSTRAINT fk_target_country FOREIGN KEY("Country") REFERENCES country ("Code")
)

Question: Which nations have a boundary with the Kalahari Desert?
Evidence: Nation refers to country

SQL:
SELECT T3.Name FROM desert AS T1 INNER JOIN geo_desert AS T2 ON T1.Name = T2.Desert INNER JOIN country AS T3 ON T3.Code = T2.Country WHERE T1.Name = 'Kalahari'