Isso parece ter sido respondido em nosso site-irmão do Android por Chauncellor :
Bem, isso levou muito tempo. Para futuros pesquisadores, veja o que você pode fazer:
Encontre o seu arquivo contacts2.db escondido em algum lugar no Android. Na maioria das vezes, ele está localizado em /data/data/com.android.providers.contacts/databases. Tive sorte e encontrei-o em uma pesquisa por meio dos pacotes do Titanium Backups. Nab esse arquivo. Tem tudo em um banco de dados sql.
Encontrei então este excelente script para extrair e converter todos os contatos em um formato .vcf para facilitar a importação para o próximo dispositivo. Ele está localizado aqui no Github e requer duas dependências (em uma máquina Ubuntu 12.04 na qual ele foi escrito): sqllite3 e libsqllite3 -dev:
sudo apt-get install sqlite3 libsqlite3-dev
Após as dependências serem satisfeitas, salve o script no Github como dbconverter.sh. Marque como executável:
chmod +x dbconverter.sh
use o script assim:
./dbconverter.sh contacts2.db > contacts2.vcf
Você então terá um adorável arquivo .vcf para facilitar a importação para o seu telefone.
Existem também outras abordagens programáticas sobre o SO: