In a large Dutch oven or heavy pot, heat olive oil over medium heat.
Add onion, carrots, and celery; sauté until vegetables begin to soften, approximately 5-7 minutes.
Stir in minced garlic and cook for 1 additional minute until fragrant.
Add the soaked and drained beans, ham hock, diced ham, chicken broth, water, thyme, and bay leaves.
Bring the mixture to a boil, then reduce heat to low and cover with a lid.
Simmer for 1.5 to 2 hours, or until the beans are completely tender.
Remove the ham hock and bay leaves. Shred any meat from the hock and return it to the pot.
Season with salt and pepper to taste before serving.